/*
 *https://leetcode.cn/problems/partition-array-into-disjoint-intervals/
 *915. 分割数组
 *medium 吴朝泽 2024.11.31
 *分割数组
*/

#include<bits/stdc++.h>
using namespace std;
class Solution {
public:
    int partitionDisjoint(vector<int>& nums) {
        int n = nums.size();  
        int max_num = nums[0];  
        int leftMax = nums[0];  // 左侧最大值
        int pos = 0;  // 分割点位置，位于数组索引 0 位置

        for (int i = 0; i < n; ++i) 
        {
            max_num = max(max_num, nums[i]);  
            if (nums[i] >= leftMax)  // 如果当前元素大于等于左侧最大值，继续下一轮循环
                continue;
            else
            {
                leftMax = max_num;  // 更新左侧最大值
                pos = i;  // 更新分割点
            }
        }
        return pos + 1;   //pos是下标，长度对应加 1
    }
};
